0.1 Contexte du jeu de données

Nous sommes un groupe de 4 étudiants de l’Université de Technologie de Troyes et, dans le cadre de notre formation, nous réalisons un projet pour l’enseignement “IF36 – Visualisation de données”.
Notre objectif est d’analyser un jeu de données de notre choix de manière approfondie.

Nous avons choisi de travailler sur un jeu de données ouvert provenant de plusieurs sources françaises, notamment SNCF et Île-de-France Mobilités.
Ce jeu de données offre une vue détaillée du réseau de transport ferroviaire en France, incluant :

  • la ponctualité des trains,
  • les validations de titres de transport,
  • la géolocalisation des arrêts.

Ce dataset nous permet de mieux comprendre les dynamiques du réseau ferré français, aussi bien en termes de régularité que de fréquentation.


Avant de pouvoir effectuer nos analyses et visualisations, nous avons dû procéder à un important travail de nettoyage des données, comprenant :

  • Renommage des colonnes pour une meilleure lisibilité,
  • Traitement des valeurs manquantes,
  • Détection et correction des valeurs aberrantes,
  • Uniformisation des types de données.

Nous avons également supprimé les données concernant les gares étrangères, afin de concentrer notre étude uniquement sur le territoire français.


1. Importation du fichier CSV

Nous avons tout d’abord importé notre jeu de données à l’aide des librairies dplyr et readr.

2. Suppression de colonnes inutiles

Certaines colonnes, contenant uniquement des commentaires textuels (“Comment (optional) delays at departure” et “Comment (optional) delays on arrival”), sont supprimées car elles ne sont pas pertinentes pour notre analyse.

3. Nettoyage des noms de colonnes

Pour faciliter l’utilisation du dataset, nous avons standardisé les noms de colonnes :

  • Suppression des parenthèses et de leur contenu
  • Remplacement des espaces par des underscores _
  • Suppression des underscores inutiles en fin de nom

4. Suppression des gares étrangères

Notre analyse portant exclusivement sur la France métropolitaine, nous avons filtré les données pour supprimer les trajets passant par certaines gares étrangères (Suisse, Allemagne, Italie, Espagne).

5. Analyse des données manquantes

Enfin, nous avons calculé le nombre de lignes contenant au moins une valeur manquante (NA) pour évaluer la qualité globale du dataset. Nous avons également extrait ces lignes pour une éventuelle analyse plus poussée.

## [1] 94

Résultat attendu

  • Affichage du nombre de lignes contenant des valeurs manquantes (nombre_NA)

  • Création d’un sous-ensemble data_NA avec uniquement les lignes incomplètes.

1 Présentation globale des données

Dans un premier temps, on aimerait avoir une vision globale des données, afin de pouvoir relever par exemple les gares les plus importantes, qui constituent la majeur partie du trafic, ou bien celle qui ont les retards moyens les plus importants… Pour cela, nous allons produire quelques visualisations simples, pour se familiariser avec le jeu de données. Nous allons ici voir trois visualisations différentes :

  • une visualisation de la répartition des temps de trajets sur une année précise (par la suite nous pourrons visualiser dynamiquement toutes les années avec un dashboard)
  • une visualisation des gares avec les temps moyens de trajet les plus importants, encore une fois sur une année précise.
  • une visualisation de la fréquentation des gares, afin de voir lesquelles participent le plus au trafic ferroviaire

1.1 Durée moyenne des trajets en france

Ce graphique nous donne une idée de la répartition de la durées des trajets en france, et nous permet de nous rendre compte des points suivants :

  • Beaucoup de trajets durent moins de 4h, pour ne pas dire la majorité.
  • Les trajets de plus de5h30 sont vraiment minoritaires, et peuvent peut être par la suite causer des irrégularités dans les données. En effet, des valeurs extremes et peu nombreuses peuvent fausser une corrélation…
  • Les trajets les plus nombreux sont autour des 2 heures.

1.2 Temps de trajet moyen par gares

Ce graphique nous permet de voir les temps moyens de trajet en fonction des gares. Cela est utile pour la suite, car nous allons certainemenent chercher à correler les données des gares avec les retards moyen. Avoir eu cette visualisation en premier lieu nous permet de choisir quelles gares pourraient être interessantes à analyser (les gares avec les trajets moyens les plus longs, les plus courts, ou entre les deux). On peut aussi se faire une idée du type de trajet pour chaque gares :

  • Les trajets a partir de Nice sont probablement en majorité à destination de Paris au vu de la longeur des trajets (ce que l’on peut valider dans les données brutes).
  • La moyenne des trajets depuis Paris est situé au milieu de la plage de durée, car ils deservent presque toutes les destinations présentes dans la base
Ce graphique nous est très utile pour être plus efficace dans nos choix de visualisation pour la suite, et dans les choix de cherry picking (effectués de manière honnête) si necessaire. Encore une fois, par la suite nous pourrons visualiser ces données sur l’ensemble des années avec un dashboard. Ici, une aggrégation des données annuelles aurait diminué la réalité des temps moyens de trajet.

1.3 Fréquentations des gares

Ce graphique nous permet de voir la fréquentation totale (départs + arrivées) des différentes gares pour l’année 2019. Il est utile pour la suite de notre analyse, car il nous permet d’identifier quelles gares génèrent le plus de trafic ferroviaire.Ces gares auront probablement un impact plus important sur les analyses de retards globaux, et mériteront donc une attention particulière.

Grâce à cette visualisation, nous pouvons faire plusieurs observations immédiates :

  • Les gares situées en haut du classement (comme Paris Gare de Lyon, Paris Montparnasse, ou Lyon Part-Dieu) sont logiquement des hubs majeurs du réseau SNCF.

  • Certaines gares régionales (comme Marseille, Lille ou Bordeaux Saint-Jean) apparaissent également, ce qui montre leur importance dans les flux nationaux.

  • La concentration du trafic sur un nombre relativement restreint de gares implique que des retards dans ces gares pourraient avoir des effets “cascades” plus forts sur l’ensemble du réseau.

Ce graphique est très utile pour guider nos prochaines étapes :

  • Sélectionner les gares à analyser en priorité (celles avec la plus forte fréquentation).

  • Comparer les taux de retard selon la fréquentation des gares.

  • Mieux structurer notre dashboard final : nous pourrons choisir d’afficher des indicateurs spécifiques sur les gares les plus actives.

Enfin, travailler uniquement sur l’année 2019 est important ici :

En agrégeant plusieurs années, nous aurions “écrasé” des variations annuelles importantes (par exemple des années impactées par des grèves ou la crise Covid). Cela nous permet de garder une vision plus précise et réaliste de l’activité sur une année “type”.

On peut aussi noter que les gares les plus fréquentées ne sont pas les gares avec les temps de trajets les moyens les plus longs, ce qui nous évitera de chercher une correlation la ou il n’y en a pas.

2 Évolution des retards dans le temps

Question 0

2.0.1 Interaction avec le graphe

ecrire ici reponse 0

3 Évolution des retards dans le temps

Question 1

3.0.1 Interaction avec le graphe

Dans les graphes suivants :

  • Il est possible de zoomer sur une période précise (exemple : uniquement l’année 2019) pour mieux analyser les pics de retard.

  • On peut montrer/cacher certaines courbes (ex : n’afficher que les retards > 60 min).

  • Il y a également un pop-up interactif qui s’affiche au survol, montrant les valeurs exactes.

  • Certains graphiques sont actuellement affiché pour 2019.

    Plus tard, avec Shiny, nous ajouterons un slider interactif pour choisir l’année dynamiquement.

## 
## Attachement du package : 'plotly'
## L'objet suivant est masqué depuis 'package:ggplot2':
## 
##     last_plot
## L'objet suivant est masqué depuis 'package:stats':
## 
##     filter
## L'objet suivant est masqué depuis 'package:graphics':
## 
##     layout
## 
## Attachement du package : 'lubridate'
## Les objets suivants sont masqués depuis 'package:base':
## 
##     date, intersect, setdiff, union

3.1 Comment la ponctualité évolue-t-elle au fil des mois ?

3.1.1 Explication du graphe

Ce graphique présente l’évolution mensuelle des retards de trains en France de 2015 à 2020.
On y observe deux informations superposées :

  • La ligne verte correspond au nombre de trains arrivés à l’heure chaque mois.

  • Les surfaces colorées empilées représentent le nombre de trains en retard, répartis selon la durée :

    • Retard > 15 minutes (jaune clair)
    • Retard > 30 minutes (orange)
    • Retard > 60 minutes (rouge)


3.1.2 Ce qu’on observe

  • Les retards > 15 minutes représentent une part importante du total, avec des pics marqués notamment en 2018.
  • Le nombre de trains à l’heure reste relativement stable, même si on remarque une légère baisse progressive à certaines périodes.

3.2 Y a-t-il des saisons où les retards sont plus fréquents ?

3.2.1 Explication du graphe

Ce graphique présente la répartition des trains selon leur ponctualité :

  • Trains à l’heure (barres gris clair)
  • Retards > 15 minutes (jaune)
  • Retards > 30 minutes (orange)
  • Retards > 60 minutes (rouge)

Chaque saison est marquée par une ligne verticale pointillée et un label (“Hiver”, “Printemps”, “Été”, “Automne”).

Pas possible d’être possible à la date près (car uniquement des données du mois et pas de jours) donc on a arrondis au mois (exemple : 21 décembre -> 1er janvier pour le début de l’hiver.)


3.2.2 Ce qu’on observe

  • Été (juillet-août) : Pic visible des retards > 15 minutes.
  • Hiver : Augmentation légère des retards, moins marquée que l’été.
  • Printemps et automne : Saisons avec généralement moins de retards.

3.2.3 Top 20 gares avec le plus de retard cumulé (Départ + Arrivée combinés)

  • Cette visualisation montre les retards cumulés (départ + arrivée) par gare et par mois.
  • Certaines gares (Paris Montparnasse, Paris Lyon, Lyon Part-Dieu) concentrent une part majeure des retards, surtout autour de l’été et début de l’automne.

Hypothèse : influence de l’affluence estivale, vacances scolaires, travaux d’été.


3.2.4 Retards au départ uniquement

  • On observe que les retards au départ sont très concentrés sur quelques grandes gares.
  • En particulier Paris Montparnasse, qui ressort beaucoup.

Hypothèse : problèmes organisationnels en gare : gestion de flux, embarquement, correspondances, grèves.


3.2.5 Retards à l’arrivée uniquement

  • Les retards à l’arrivée semblent un peu plus diffus, bien qu’ils restent concentrés sur les gares principales.

Hypothèse : aléas pendant le trajet (accidents, incidents techniques, météo)

On détaillera cela dans une prochaine question.


3.2.6 Répartition des retards par gare

  • Histogramme des 3 gares les plus concernées par les retards en comparaisons aux autres.

3.2.7 Résultats observés

  • Paris Montparnasse, Paris Lyon et Lyon Part-Dieu concentrent plus de 35% des retards ferroviaires à elles seules.
  • Les autres gares contribuent beaucoup moins individuellement.

3.3 Conclusion générale Question 1

Grâce aux différents graphiques réalisés, nous pouvons conclure :

  • En 2019, les retards ferroviaires sont principalement concentrés sur quelques grandes gares stratégiques.
  • Il existe une saisonnalité des retards : davantage en été (vacances, affluence, chaleur) et en hiver (conditions climatiques, période de Noël).

Bien que l’analyse porte sur l’année 2019, les mêmes tendances générales semblent observables sur 2015–2020.


3.4 Perspectives

Plus tard, avec Shiny, nous créerons une application interactive qui permettra : - De filtrer dynamiquement par année, par gare, par saison, - D’explorer les retards ferroviaires plus efficacement et en temps réel.

Cela permettra de confirmer ou nuancer les tendances mises en évidence ici.


4 Analyse des causes de retard

4.1 Quelles sont les principales causes de retard ?

Nous voulons savoir quelle sont les principales causes de retard. Pour cela, nous calculons la moyenne pour chaque liaison de la proportion des causes.

4.1.1 Explication du graphe

Ce graphique représente la proportion de cause des retards référencés dans le dataset. Ces causes sont divisées en plusieurs catégories :

  • les causes externes (par exemple le temps, les obstacles sur la voie ou des actions malveillantes)
  • l’infrastructure ferroviaire (par exemple pendant des travaux de maintenance)
  • la gestion du traffic (par exemple pendant les correspondances)
  • le matériel roulant (par exemple lors d’une panne ou d’une anomalie sur la rame)
  • le retard en station (par exemple sur la réutilisation du matériel)
  • le retard du aux voyageurs (par exemble au moment de l’embarcation)

4.1.2 Observations

  • On peut voir que les causes de retard les plus fréquentes sont celles liées à l’extérieur et celles liées à l’infrastructure ferroviaire, à respectivement 27% et 26% environ.
  • Les retards dûs aux voyageurs en eux-mêmes sont beaucoup moins fréquents, n’atteignant pas 4% des retards renseignés dans le dataset.

4.2 Certaines causes sont-elles plus fréquentes selon les mois ?

Nous avons maintenant une certaine idée de la proportion de chaque cause, mais ce chiffre n’est possiblement pas tout le temps le même. Ici, nous calculons alors de la même manière la proportion de retards, mais cette fois-ci pour chaque mois.

4.2.1 Explication du graphe

Ce graphique, sous forme de stacked bar plot, décrit les proportions de causes de retard des trains selon les mois, classés dans l’ordre chronologique. Les causes sont les mêmes que celles évoquées dans le précédent graphique

4.2.2 Observations et hypothèses

On peut alors voir que les proportions restent sensiblement les même pour la plupart chaque mois, mais on observe tout de même des différences notables lorsqu’on observe plus en détail :

  • Les retards pour causes extérieures sont moins fréquentes en été. Cela peut s’expliquer par la météo, plus clémente pour le réseau ferroviaire en cette période

  • On observe un pic de retard à cause de l’infrastructure ferroviaire en avril et juin. On peut alors supposer que la SNCF choisit ces dates pour entreprendre des travaux de maintenance. En effet, ces dates sont proches des vacances d’été et donc proches des fortes affluences qu’il faut préparer.

  • Aux mois de juillet et aout, les retards liés aux passagers sont plus importants qu’aux autres mois. Cela peut être dû à la forte affluence amenée par les vacances d’été, entraînant des problèmes d’organisation.

4.3 Certaines causes sont-elles plus fréquentes selon les stations ?

La temporalité n’est pas le seul facteur qui pourrait influencer les causes de retard. En effet, celles-ci peuvent être influencées par l’emplacement de la gare, selon la météo ou la voirie à l’emplacement concerné par exemple.

### Explication du graphe

Ce graphique, sous forme de heatmap, décrit les proportions de causes de retard des trains selon les stations de départ. Plus la proportion d’une cause de retard est grande, plus la case correspondante tend vers le rouge foncé.

4.3.1 Observations et hypothèses

On peut alors voir que les proportions restent sensiblement les même pour la plupart pour chaque station, mais on observe tout de même des disparités notables dans certains cas :

  • Les retards pour causes extérieures sont plus fréquents dans les villes de Brest, Perpignan et Quimper. Deux de ces villes étant en Bretagne, il est possible de se dire que le climat de la région amène à plus de retard.

  • On observe une plus grande proportion de retard à cause de l’infrastructure ferroviaire au Mans, à Angoulême, à Poitiers ou encore à Angers. On peut alors supposer, puisque les villes sont plus ou moins proches les unes des autres, que ces travaux de maintenance on eu lieu sur les mêmes infrastructures.

4.4 Conclusion question cause des retards

On a donc appris que les causes de retard les plus fréquentes étaient les causes extérieures et l’infrastructure ferroviaire. Malgré cette tendance remarquée, ces causes peuvent varier selon le temps et les stations concernées.

4.5 Les longs trajets sont-ils plus souvent en retard ?

4.5.1 Objectif

Nous examinons la relation entre la durée moyenne d’un trajet et le retard moyen à l’arrivée Deux approches :

  • Scatterplot
  • Boxplot
## `geom_smooth()` using formula = 'y ~ x'

4.5.2 Explication du graphe

Axe X : La durée moyenne des trajets du dataset. Axe Y : retard moyen à l’arrivée. Chaque point = une liaison ; Ligne rouge = régression linéaire.

4.5.3 Observations et hypothèses

Nuage très dispersé, on voit quelques valeurs extrêmes (> 200 min de retard) qui tirent la pente vers le haut.

## `geom_smooth()` using formula = 'y ~ x'

4.5.4 Explication du graphe

Identique au précédent, on enlève les outliers problématiques pour ajuster le graphique et qu’il soit plus représentatif.

4.5.5 Observations et hypothèses

Dispersion verticale quasiment constante jusqu’à ~180 min ; au-delà, la variabilité augmente.

Les retards extrêmes observés sur la première figure sont soit des erreurs soit le résultat d’erreur de données La durée du trajet n’explique qu’une petite partie des retards, d’autres facteurs (infrastructure, matériel, trafic, météo…) sont très sûrement en cause.

4.5.6 Explication du graphe

Chaque boîte correspond à une tranche de 30 min de durée. Elle montre la distribution du retard moyen pour une tranche de durée du trajet.

4.5.7 Observations et hypothèses

Médiane proche de 6 min jusqu’à la tranche 120-150 min, puis hausse continue. Les valeurs atypiques s’allongent après 180 min, on peut observer que les longs trajets ont plus souvent des retards supérieur à 30 min.

Les trajets courts subissent plutôt des petits retards mais fréquents.

4.6 Conclusion Retard vs durée de trajet

La durée du trajet contribue aux retards, surtout quand elle dépasse 3 heures.

En retirant les outliers, la corrélation devient modeste, les retards se jouent sur une multitude de facteurs plus que sur la distance du trajet.

Pour comprendre les causes, il faudra donc croiser la durée par exemple avec :

-Type de ligne. -Période/saison.

Et dans un second temps regarder les catégorie de cause déjà présentes comme l’infrastructure, le matériel ou les voyageurs